{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'/Users/shrilakshmisbonageri/Desktop/UW/DIRECT/PROJECT/BattDeg/examples'"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pwd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Replace this with the path to battdeg.py module in your system\n",
    "sys.path.insert(0, '/Users/shrilakshmisbonageri/Desktop/UW/DIRECT/PROJECT/BattDeg/battdeg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "import battdeg"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Reading all the files for a PL cell and predicting discharge capacity.\n",
    "##### This example considers reading all the files for the cell PL12"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dict_keys([5, 6])\n"
     ]
    }
   ],
   "source": [
    "# The path of the directory hosting the folder containing the datafiles\n",
    "data_dir = '/Users/shrilakshmisbonageri/Desktop/UW/DIRECT/PROJECT/BattDeg/battdeg/data/PL12'\n",
    "# The folder name which has datacells of a cell\n",
    "file_name_format = 'PL12(2).csv'\n",
    "# The sheet number in the excel files containing the data.\n",
    "sheet_name = 1\n",
    "# The ignore indices can be used for PL Samples files if required.\n",
    "ignore_file_indices = [1,2,3,4]\n",
    "df_out = battdeg.file_reader(data_dir, file_name_format, sheet_name, ignore_file_indices)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Current(A)</th>\n",
       "      <th>Voltage(V)</th>\n",
       "      <th>discharge_cycle_ah</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>3.775442</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.0</td>\n",
       "      <td>3.775442</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.0</td>\n",
       "      <td>3.775603</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.0</td>\n",
       "      <td>3.775280</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.0</td>\n",
       "      <td>3.775442</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Current(A)  Voltage(V)  discharge_cycle_ah\n",
       "0         0.0    3.775442                 0.0\n",
       "1         0.0    3.775442                 0.0\n",
       "2         0.0    3.775603                 0.0\n",
       "3         0.0    3.775280                 0.0\n",
       "4         0.0    3.775442                 0.0"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# The below dataframe can be used for prediction.\n",
    "df_out.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### The function 'model_prediction' in the battdeg module can be used to predict discharge capacity from the time series data obtained from 'file_reader' function."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "yhat = battdeg.model_prediction(df_out)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x1a3d774eb8>"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEKCAYAAADuEgmxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzsfXmcHFW1//d0zySTjcUQARMkkTVsCSFBIovsoEIQMAbeQ18AQQRXBAEfP0DA9xSM6JMHyKJBReDJY30sBoSwJGxJCBgSIGEPhOzL7DPddX5/VHVPd9e999yq6prumdzv5zOfnu7Td+mqW/fs5xIzw8HBwcHBwQaZWk/AwcHBwaHvwDENBwcHBwdrOKbh4ODg4GANxzQcHBwcHKzhmIaDg4ODgzUc03BwcHBwsIZjGg4ODg4O1nBMw8HBwcHBGo5pODg4ODhYo6HWE6g2ttlmGx49enStp+Hg4ODQpzB//vw1zDxC+l6/YxqjR4/GvHnzaj0NBwcHhz4FInrf5nvOPOXg4ODgYA3HNBwcHBwcrOGYhoODg4ODNfqdT8PBYXNGd3c3li9fjo6OjlpPxaFO0dTUhFGjRqGxsTFWe8c0HBz6EZYvX45hw4Zh9OjRIKJaT8ehzsDMWLt2LZYvX44xY8bE6sOZpxwc+hE6OjowfPhwxzAclCAiDB8+PJEmWjOmQUQ7ENFTRLSEiF4noh8ovnMoEW0kooXB32W1mKuDQ1+CYxgOJiRdH7U0T+UA/JiZFxDRMADziehxZl5c8b1nmfm4GswvEVZu6sCrH27A0XtuV+upODg4OFQNNdM0mHkFMy8I/m8GsATAyFrNp9o46Ya5OPvP82s9DQeHXkc2m8X48eOx1157YerUqWhra4vd1+zZs3Hccb7M+OCDD+IXv/iF9rsbNmzADTfcEHmMK664Ar/61a9iz7Ha/dQ76sKnQUSjAewL4EUFeTIRvUpEjxLRnr06sQT4aEN7rafg4FATDBo0CAsXLsSiRYswYMAA3HTTTWV0ZobneZH7nTJlCi6++GItPS7TcIiGmjMNIhoK4H8B/JCZN1WQFwDYkZnHAfgdgPs1fZxNRPOIaN7q1avTnbCDg4M1Dj74YCxbtgzvvfcexo4di3PPPRcTJkzAhx9+iFmzZmHy5MmYMGECpk6dipaWFgDAY489ht133x0HHXQQ7r333mJfM2fOxHe/+10AwMqVK3HiiSdi3LhxGDduHObOnYuLL74Yb7/9NsaPH48LL7wQAHDttddi0qRJ2GeffXD55ZcX+/r5z3+O3XbbDUceeSTefPPN0Lw3btyI0aNHF5lbW1sbdthhB3R3d+OWW27BpEmTMG7cOJx88slKTerQQw8tljNas2YNCvXw8vk8LrzwwuKcfv/73wMAVqxYgUMOOaSooT377LNJL31qqGnILRE1wmcYdzDzvZX0UibCzI8Q0Q1EtA0zr6n43s0AbgaAiRMncsrTdnDoE/jZQ69j8ceVclgy7PGZLXD58XYKfy6Xw6OPPopjjz0WAPDmm2/ij3/8I2644QasWbMGV199NZ544gkMGTIEv/zlL/HrX/8aP/nJT3DWWWfhySefxM4774xp06Yp+/7+97+PL37xi7jvvvuQz+fR0tKCX/ziF1i0aBEWLlwIAJg1axaWLl2Kl156CcyMKVOm4JlnnsGQIUNw11134ZVXXkEul8OECROw3377lfW/5ZZbYty4cXj66adx2GGH4aGHHsIxxxyDxsZGnHTSSTjrrLMAAJdeeiluu+02fO9737O6Jrfddhu23HJLvPzyy+js7MSBBx6Io48+Gvfeey+OOeYY/Pu//zvy+Xwik17aqBnTIN+FfxuAJcz8a813tgOwkpmZiPaHrxmt7cVpOjg4RER7ezvGjx8PwNc0zjzzTHz88cfYcccdccABBwAAXnjhBSxevBgHHnggAKCrqwuTJ0/GG2+8gTFjxmCXXXYBAJx22mm4+eabQ2M8+eST+NOf/gTA96FsueWWWL9+fdl3Zs2ahVmzZmHfffcFALS0tGDp0qVobm7GiSeeiMGDBwPwzV4qTJs2DXfffTcOO+ww3HXXXTj33HMBAIsWLcKll16KDRs2oKWlBcccc4z1tZk1axZee+013HPPPQB8jWbp0qWYNGkSzjjjDHR3d+OrX/1q8frVI2qpaRwI4BsA/klEC4PPfgrgswDAzDcB+BqA7xBRDkA7gFOYuU9pEszsQiAdagJbjaDaKPg0KjFkyJDi/8yMo446CnfeeWfZdxYuXFi154WZcckll+Db3/522ee/+c1vrMaYMmUKLrnkEqxbtw7z58/H4YcfDgCYPn067r//fowbNw4zZ87E7NmzQ20bGhqKpq3SnAhmxu9+9zslo3nmmWfw8MMP4xvf+AYuvPBCfPOb34zyc3sNtYyeeo6ZiZn3Yebxwd8jzHxTwDDAzNcz857MPI6ZD2DmubWar4ODQ/VwwAEHYM6cOVi2bBkA32fw1ltvYffdd8e7776Lt99+GwBCTKWAI444AjfeeCMA30+wadMmDBs2DM3NzcXvHHPMMfjDH/5Q9JV89NFHWLVqFQ455BDcd999aG9vR3NzMx566CHlGEOHDsX++++PH/zgBzjuuOOQzWYBAM3Nzdh+++3R3d2NO+64Q9l29OjRmD/fj54saBWFOd14443o7u4GALz11ltobW3F+++/j09/+tM466yzcOaZZ2LBggV2F7IGcGVEHBwceh0jRozAzJkzceqpp6KzsxMAcPXVV2PXXXfFzTffjK985SvYZpttcNBBB2HRokWh9r/97W9x9tln47bbbkM2m8WNN96IyZMn48ADD8Ree+2FL33pS7j22muxZMkSTJ48GYDPBP7yl79gwoQJmDZtGsaPH48dd9wRBx98sHae06ZNw9SpU8u0iauuugqf//znseOOO2LvvfcuY1QFXHDBBfj617+OP//5z0UNBQC+9a1v4b333sOECRPAzBgxYgTuv/9+zJ49G9deey0aGxsxdOjQoumtHkF9zNojYuLEiVwPhzCNvvhhAMC7//llZ55y6DUsWbIEY8eOrfU0HOocqnVCRPOZeaLUtuYhtw4ODg4OfQeOaaSEoWjDN7KzwP/831pPxcHBwaFqcEwjJXwp+xKuapyJzL1nAi0u4dDBwaF/wDGNlDAQ3T1vvFztJuLg4OBQRTimkRIyiF5bx8HBwaHe4ZhGCmBmZB3TcHBw6IdwTCMF5Dx2mobDZotCafTCn6mceTUglUyvBmbPno25c+Xc4tKiiklQrX7SgEvuSwGdOQ8NZUyjf+XCODiYoCsjkgZyuRymTJmirR9VLcyePRtDhw7FF77whVTH6QtwmkYK6Mp5zjzl4FCCjRs3YrfddiuWIT/11FNxyy23APAztX/84x9jwoQJOOKII1A43uDtt9/Gsccei/322w8HH3ww3njjDQB+7afzzz8fhx12GC666KIyqXz69On4zne+g8MOOwyf+9zn8PTTT+OMM87A2LFjMX369OJ8dGXZR48ejcsvvxwTJkzA3nvvjTfeeAPvvfcebrrpJlx33XUYP348nn32WTz00EP4/Oc/j3333RdHHnkkVq5cqf3tnudh9OjR2LBhQ/GznXfeGStXrrTqZ/r06WWlSIYOHVr8X1X6vbW1FV/5ylcwbtw47LXXXrj77rvtb5QFnKaRAnKe58xTDrXHoxcDn/yzun1utzfwJbMpqLTKLQBccsklmDZtGq6//npMnz4dP/jBD7B+/fpiefHW1lZMmDABM2bMwJVXXomf/exnuP7663H22Wfjpptuwi677IIXX3wR5557Lp588kkAfs2mJ554AtlsFjNnziwbf/369XjyySfx4IMP4vjjj8ecOXNw6623YtKkSVi4cCFGjRqlLMt+2WWXAQC22WYbLFiwADfccAN+9atf4dZbb8U555yDoUOH4oILLiiO8cILL4CIcOutt+Kaa67BjBkzlNcjk8nghBNOwH333YfTTz8dL774IkaPHo1tt90WBx10kHU/ldCVfl+9ejU+85nP4OGH/aoUGzdutOrPFo5ppASnaThsrtCZp4466ij87W9/w3nnnYdXX321+Hkmkymem3HaaafhpJNOQktLC+bOnYupU6cWv1eoUQUAU6dOLRYQrMTxxx8PIsLee++NbbfdFnvvvTcAYM8998R7772H5cuXK8uyF3DSSScBAPbbb7+yQ6BKsXz5ckybNg0rVqxAV1cXxowZY7wm06ZNw5VXXonTTz8dd911V/H3Ru2nFLrS7wcffDAuuOACXHTRRTjuuOOMtbXiwDGNlJClfK2n4LC5Q9AIehue52HJkiUYNGgQ1q1bh1GjRim/R0TwPA9bbbWV1jdSWma9EgMHDgTgM6PC/4X3uVwO2WxWWZa9sn02m0Uup86x+t73vofzzz8fU6ZMwezZs3HFFVdo5wMAkydPxrJly7B69Wrcf//9uPTSS637KS2zzszo6uoq/q8q/Q4A8+fPxyOPPIJLLrkERx99dFGLqgacTyMllGka/awopINDHFx33XUYO3Ys7rzzzuKBQ4DPTAo2+7/+9a846KCDsMUWW2DMmDH429/+BsDfIEu1kyTQlWU3obLs+saNGzFy5EgAwO233y6OSUQ48cQTcf7552Ps2LEYPny4dT+lZdYfeOCB4nXTlX7/+OOPMXjwYJx22mm44IILql5m3WkaaYCBrIuYcthMUenTOPbYY3HGGWfg1ltvxUsvvYRhw4bhkEMOwdVXX42f/exnGDJkCF5//XXst99+2HLL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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plotting yhat(model prediction) and real discharge capacity\n",
    "# from df_out\n",
    "plt.plot(yhat[0:50000],label='Predicted values')\n",
    "plt.plot(df_out['discharge_cycle_ah'][0:50000],label='Experimental values')\n",
    "plt.xlabel('Time steps')\n",
    "plt.ylabel('Discharge Capacity(Ah)')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
